package com.erpanderp.wam.ac.model.entity.travel;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Transient;

import com.erpanderp.wam.usm.model.entity.user.Employee;

public class TravelRequest {
	private Long travelRequestId;
	private String travelRequestCode;
	private Date requestDate;
	private Employee employee;
	private Employee approver;
	private String travelMode;
	private String travelType;
	private Date periodFrom;
	private Date periodTo;
	private String travelFrom_DO;
	private String travelTo_DO;
	private String travelFromCountry_DO;
	private String travelToCountry_DO;
	private String travelFrom_OS;
	private String travelTo_OS;
	private String travelFromCountry_OS;
	private String travelToCountry_OS;	
	private String emergencyContact;
	private String natureOfWork;
	private String client;
	private String clientLocation;
	private Float advancePaymentINR;
	private Float advancePaymentUSD;
	private String dollarCurrencyRate;
	private String travelStatus;
	private String approvalComments;
	private String cancellationReason;
	private Date createDate;
	private Date dateModified;
	private String createdBy;
	private String modifiedBy;
	private String description;
	private String status;	
	private Set<TravelLogistics> travelLogistics = new HashSet<TravelLogistics>();
	private Set<TravelExpenseAmount> travelExpenseAmounts = new HashSet<TravelExpenseAmount>();
	
	@Transient
	private boolean disableCreateExpenseButton;
	
	@Transient
	private int sNo;

	public Long getTravelRequestId() {
		return travelRequestId;
	}
	public void setTravelRequestId(Long travelRequestId) {
		this.travelRequestId = travelRequestId;
	}
	public String getTravelRequestCode() {
		return travelRequestCode;
	}
	public void setTravelRequestCode(String travelRequestCode) {
		this.travelRequestCode = travelRequestCode;
	}
	public Date getRequestDate() {
		return requestDate;
	}
	public void setRequestDate(Date requestDate) {
		this.requestDate = requestDate;
	}
	public Employee getEmployee() {
		return employee;
	}
	public void setEmployee(Employee employee) {
		this.employee = employee;
	}
	public Employee getApprover() {
		return approver;
	}
	public void setApprover(Employee approver) {
		this.approver = approver;
	}
	public String getTravelMode() {
		return travelMode;
	}
	public void setTravelMode(String travelMode) {
		this.travelMode = travelMode;
	}
	public String getTravelType() {
		return travelType;
	}
	public void setTravelType(String travelType) {
		this.travelType = travelType;
	}
	public Date getPeriodFrom() {
		return periodFrom;
	}
	public void setPeriodFrom(Date periodFrom) {
		this.periodFrom = periodFrom;
	}
	public Date getPeriodTo() {
		return periodTo;
	}
	public void setPeriodTo(Date periodTo) {
		this.periodTo = periodTo;
	}
	public String getTravelFrom_DO() {
		return travelFrom_DO;
	}
	public void setTravelFrom_DO(String travelFrom_DO) {
		this.travelFrom_DO = travelFrom_DO;
	}
	public String getTravelTo_DO() {
		return travelTo_DO;
	}
	public void setTravelTo_DO(String travelTo_DO) {
		this.travelTo_DO = travelTo_DO;
	}
	public String getTravelFromCountry_DO() {
		return travelFromCountry_DO;
	}
	public void setTravelFromCountry_DO(String travelFromCountry_DO) {
		this.travelFromCountry_DO = travelFromCountry_DO;
	}
	public String getTravelToCountry_DO() {
		return travelToCountry_DO;
	}
	public void setTravelToCountry_DO(String travelToCountry_DO) {
		this.travelToCountry_DO = travelToCountry_DO;
	}
	public String getTravelFrom_OS() {
		return travelFrom_OS;
	}
	public void setTravelFrom_OS(String travelFrom_OS) {
		this.travelFrom_OS = travelFrom_OS;
	}
	public String getTravelTo_OS() {
		return travelTo_OS;
	}
	public void setTravelTo_OS(String travelTo_OS) {
		this.travelTo_OS = travelTo_OS;
	}
	public String getTravelFromCountry_OS() {
		return travelFromCountry_OS;
	}
	public void setTravelFromCountry_OS(String travelFromCountry_OS) {
		this.travelFromCountry_OS = travelFromCountry_OS;
	}
	public String getTravelToCountry_OS() {
		return travelToCountry_OS;
	}
	public void setTravelToCountry_OS(String travelToCountry_OS) {
		this.travelToCountry_OS = travelToCountry_OS;
	}
	public String getEmergencyContact() {
		return emergencyContact;
	}
	public void setEmergencyContact(String emergencyContact) {
		this.emergencyContact = emergencyContact;
	}
	public String getNatureOfWork() {
		return natureOfWork;
	}
	public void setNatureOfWork(String natureOfWork) {
		this.natureOfWork = natureOfWork;
	}
	public String getClient() {
		return client;
	}
	public void setClient(String client) {
		this.client = client;
	}
	public String getClientLocation() {
		return clientLocation;
	}
	public void setClientLocation(String clientLocation) {
		this.clientLocation = clientLocation;
	}
	public Float getAdvancePaymentINR() {
		return advancePaymentINR;
	}
	public void setAdvancePaymentINR(Float advancePaymentINR) {
		this.advancePaymentINR = advancePaymentINR;
	}
	public Float getAdvancePaymentUSD() {
		return advancePaymentUSD;
	}
	public void setAdvancePaymentUSD(Float advancePaymentUSD) {
		this.advancePaymentUSD = advancePaymentUSD;
	}
	public String getDollarCurrencyRate() {
		return dollarCurrencyRate;
	}
	public void setDollarCurrencyRate(String dollarCurrencyRate) {
		this.dollarCurrencyRate = dollarCurrencyRate;
	}
	public String getTravelStatus() {
		return travelStatus;
	}
	public void setTravelStatus(String travelStatus) {
		this.travelStatus = travelStatus;
	}
	public String getApprovalComments() {
		return approvalComments;
	}
	public void setApprovalComments(String approvalComments) {
		this.approvalComments = approvalComments;
	}
	public String getCancellationReason() {
		return cancellationReason;
	}
	public void setCancellationReason(String cancellationReason) {
		this.cancellationReason = cancellationReason;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	public Date getDateModified() {
		return dateModified;
	}
	public void setDateModified(Date dateModified) {
		this.dateModified = dateModified;
	}
	public String getCreatedBy() {
		return createdBy;
	}
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}
	public String getModifiedBy() {
		return modifiedBy;
	}
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public Set<TravelLogistics> getTravelLogistics() {
		return travelLogistics;
	}
	public void setTravelLogistics(Set<TravelLogistics> travelLogistics) {
		this.travelLogistics = travelLogistics;
	}
	
	public boolean equals(Object obj) {
		if (!(obj instanceof TravelRequest))
		      return false;
		if (obj == this)
		      return true;
		return  this.getTravelRequestId() == ((TravelRequest) obj).travelRequestId;
	}
	public boolean isDisableCreateExpenseButton() {
		return disableCreateExpenseButton;
	}
	public void setDisableCreateExpenseButton(boolean disableCreateExpenseButton) {
		this.disableCreateExpenseButton = disableCreateExpenseButton;
	}
	public int getsNo() {
		return sNo;
	}
	public void setsNo(int sNo) {
		this.sNo = sNo;
	}
	public Set<TravelExpenseAmount> getTravelExpenseAmounts() {
		return travelExpenseAmounts;
	}
	public void setTravelExpenseAmounts(Set<TravelExpenseAmount> travelExpenseAmounts) {
		this.travelExpenseAmounts = travelExpenseAmounts;
	}
}
